package main

import (
	"fmt"
	"net"
)

func main4() {
	// 创建一个UDP连接的地址，包含了本地IP 127.0.0.1，以及端口号2000
	localAddress := &net.UDPAddr{IP: net.ParseIP("127.0.0.1"), Port: 2000}

	// 以UDP协议，监听网络地址，此处实际是打开本地端口。注意，此处不会产生阻塞，可以直接创建conn对象
	conn, err := net.ListenUDP("udp", localAddress)

	// 如果出现错误，则打印错误消息
	if err != nil {
		fmt.Printf("监听错误: %s", err)
		return
	}

	defer conn.Close()

	// 利用IP+端口号，创建远程地址
	remoteAddress := &net.UDPAddr{IP: net.ParseIP("127.0.0.1"), Port: 1888}
	//向远程地址发送消息"hello"
	_, err = conn.WriteToUDP([]byte("hello"), remoteAddress)

	// 如果出现错误，则打印错误消息
	if err != nil {
		fmt.Printf("消息发送错误：%v", err)
	}
}
